package com.ym.medical.domain.param;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ym.medical.enums.CounsellingRoomStateEnum;
import com.ym.medical.enums.DoctorJobTitle;
import com.ym.medical.enums.InquiryOrderIoTypeEnum;
import com.ym.medical.enums.InquiryOrderSourceEnum;
import com.ym.medical.enums.InquiryOrderStateEnum;
import com.ym.medical.enums.PatientDetailRelationEnum;
import com.ym.medical.enums.UserSexEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("患者个人信息")
public class PatientInfoParam {
	@ApiModelProperty("医生id")
	private Long doctorId;

	@ApiModelProperty("医生云信账户")
	private Long replyAccid;

	@ApiModelProperty("问诊人云信账户")
	private Long inquiryAccid;

	@ApiModelProperty("用户id")
	private Long userId;

	@ApiModelProperty("病情描述")
	private String illnessDesc;

	@ApiModelProperty("患者电话")
	private String patientNo;

	@ApiModelProperty("患者评价-id")
	private Long commentId;

	@ApiModelProperty("患者评价-内容")
	private String commentBody;

	@ApiModelProperty("患者评价-星数")
	private Integer commentStarNumber;

	@ApiModelProperty("患者评价-时间")
	private Date createTime;

	@ApiModelProperty("患者问诊订单id")
	private Long ioId;


	/**
	 * 患者主键Id
	 */
	@ApiModelProperty("患者ID")
	private Long patientId;

	/**
	 * 患者名称
	 */
	@ApiModelProperty("患者名称")
	private String patientName;

	/**
	 * 患者性别
	 */
	@ApiModelProperty("患者性别")
	@JsonSerialize(converter = UserSexEnum.Covert.class)
	private String patientSex;

	/**
	 * 患者生日
	 */
	@ApiModelProperty("患者生日")
	private String patientBirthday;

	/**
	 * 患者体重
	 */
	@ApiModelProperty("患者体重")
	private String weight;

	/**
	 * 患者头像
	 */
	@ApiModelProperty("患者头像")
	private String patientHead;


	/**
	 * 医生名字
	 */
	@ApiModelProperty("医生名字")
	private String doctorName;

	/**
	 * 科室类型
	 */
	@ApiModelProperty("科室类型")
	private String doctorType;

	/**
	 * 医生头像
	 */
	@ApiModelProperty("医生头像")
	private String doctorHead;

	/**
	 * 订单状态
	 */
	@ApiModelProperty("订单状态,key=InquiryOrderStateEnum")
	@JsonSerialize(converter = InquiryOrderStateEnum.Covert.class)
	private String orderState;

	/**
	 * 订单类型
	 */
	@ApiModelProperty("订单类型,key=InquiryOrderIoTypeEnum")
	@JsonSerialize(converter = InquiryOrderIoTypeEnum.Covert.class)
	private String ioType;

	/**
	 * 聊天室主键ID
	 */
	@ApiModelProperty("聊天室主键ID")
	private String roomMainId;

	/**
	 * 聊天室状态
	 */
	@ApiModelProperty("聊天室状态,key=CounsellingRoomStateEnum")
	@JsonSerialize(converter = CounsellingRoomStateEnum.Covert.class)
	private String roomState;

	/**
	 * 内容
	 */
	@ApiModelProperty("聊天内容")
	private String content;

	/**
	 * 最后聊天消息时间
	 */
	@ApiModelProperty("最后聊天消息时间")
	private Date time;

	/**
	 * 最后聊天消息时间
	 */
	@ApiModelProperty("最后聊天消息时间")
	private String rspTime;

	/**
	 * 患者未读消息数量
	 */
	@ApiModelProperty("患者未读消息数量")
	private Integer patientUnread;

	/**
	 * 医生未读消息数量
	 */
	@ApiModelProperty("医生未读消息数量")
	private Integer doctorUnread;

	/**
	 * 患者与本人关系
	 */
	@ApiModelProperty("患者与本人关系")
	@JsonSerialize(converter = PatientDetailRelationEnum.Covert.class)
	private String relation;

	/**
	 * 问答工作室ID
	 */
	@ApiModelProperty("问答工作室ID")
	private String workId;

	/**
	 * 问答工作室名称
	 */
	@ApiModelProperty("问答工作室名称")
	private String workName;

	/**
	 * 患者云信账户
	 */
	@ApiModelProperty("患者云信账户")
	private String patientAccid;

	/**
	 * 患者云信密码
	 */
	@ApiModelProperty("患者云信密码")
	private String patientPwd;

	/**
	 * 患者云信密码
	 */
	@ApiModelProperty("年龄")
	private String patientAge;

	/**
	 * 聊天开始时间
	 */
	@ApiModelProperty("聊天开始时间")
	private Date startTime;

	/**
	 * 聊天结束时间
	 */
	@ApiModelProperty("聊天结束时间")
	private Date endTime;

	@ApiModelProperty("聊天最大次数")
	private int chatMaxNum;

	@ApiModelProperty("订单来源(找医生，自诊，快速问诊)")
	private String orderSource;

	@ApiModelProperty("翻译值:订单来源(找医生，自诊，快速问诊)")
	private String orderSourceName;

	@ApiModelProperty("附件")
	private String attach;

	@ApiModelProperty("医生职称")
	private String doctCategory;

	@ApiModelProperty("医生职称")
	private String doctCategoryName;

	@ApiModelProperty("医生总结疾病")
	private String possDisease;

	@ApiModelProperty("阅读数")
	private Integer readNum;

	@ApiModelProperty("标签集合")
	private List<String> tagList;
}
